package practice3;
import java.util.Scanner;

public class P8762 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        for (int i=0;i<t;i++){
            long l =sc.nextLong();
            long r =sc.nextLong();
            System.out.println(getSum(r)-getSum(l-1));
        }
    }
    //求所在行数
    public static long getN(long x) {
        //求根公式
        return (long) Math.ceil(Math.sqrt(0.25 + 2 * x) - 0.5);
    }
    //求前x项的和
    public static long getSum(long x) {
        //n为当前下标所在行，t为当前下标位于该行中第几列
        long n = getN(x);
        long t = x - n * (n - 1) / 2;
        //化简可得前n行的和:n*(n+1)*(n+2)/6 （这里也可以使用前缀和来记录）
        return n * (n - 1) * (n + 1) / 6 + t * (t + 1) / 2;
    }
}